export type Optional<T, K extends keyof T = never> = {
  [P in keyof T]: P extends K ? T[P] | undefined : T[P];
}

export type OptionalAll<T> = {
  [P in keyof T]?: T[P];
}

export type OptionData<T> = T | undefined;